package proy2redes;

import java.net.*;
import java.io.*;
//import java.util.*;

public class dmonAdrep extends Thread {
    private Socket socket = null;
	
    public dmonAdrep(Socket socket) {
	    super("dmonAdrep");
	    this.socket = socket;
    }
	
	private String procesarComandoDrep(String comando) {
		String respuesta = "";
        if (comando.equals("tuser")) {
			respuesta = dmon.obtenerTuser();
		} else if (comando.equals("nrep")) {
			respuesta  = "" + dmon.NumDrep;
		} else if (comando.equals("sube")) {
			dmon.NumSubidos = dmon.NumSubidos + 1;
		} else if (comando.equals("baja")) {
			dmon.NumBajados = dmon.NumBajados + 1;
		} else {
			String accion = comando.substring(0,7);
			String nombreUsuario = comando.substring(7);
			if (accion.equals("connect")) {
				dmon.Usuarios.put(nombreUsuario,"5");
			} else {
				dmon.Usuarios.remove(nombreUsuario);
			}
		}
        return respuesta;
    }

    public void run() {
	    try {
	        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
	        BufferedReader in = new BufferedReader(
				                    new InputStreamReader(
				                        socket.getInputStream()
                                    )
                                );
	        String entrada, salida;
	        while ((entrada = in.readLine()) != null) {
		        salida = procesarComandoDrep(entrada);
				//System.out.println("Archivos Subidos:" + salida + "\nArchivos Bajados = " + dmon.NumBajados + "\nArchivos Subidos = " + dmon.NumSubidos);
				//dmon.Usuarios.put("Hey","Otra");
				//dmon.Usuarios.put("Hey","Nuevo");
				if (!salida.equals("")) {
					//System.out.println("ENTRO AQUI");
					out.println(salida);
				}
	        }
	        out.close();
	        in.close();
	        socket.close();
	    } catch (IOException e) {
	        e.printStackTrace();
	    }
    }
}
